// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Παίξτε στο Posido Casino με την εφαρμογή μας στο διαδίκτυο – Γρήγορα & ασφαλές καζίνο εμπειρία! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Παίξτε στο Posido Casino με την εφαρμογή μας στο διαδίκτυο – Γρήγορα & ασφαλές καζίνο εμπειρία!

Πώς να ξεκινήσετε να παίζετε στο Posido Casino με την εφαρμογή μας;, translated to How to get started with Posido Casino’s online app?

Θέλετε να ξεκινήσετε τη συνοδευμένη εμπειρία του Posido Casino; Δείτε πώς μπορείτε να αρχίσετε σada την εφαρμογή μας σε έξι εύκολα βήματα:
1. κατεβάστε την εφαρμογή Posido Casino από το site μας.
2. εγκαταστήστε την εφαρμογή στο συσκευή σας.
3. δημιουργήστε ένα λογαριασμό ή συνδεθείτε με ένα υπάρχον λογαριασμό.
4. επιλέξτε το παιχνίδι που σας αρέσει και ορίστε τις παραμέτρους του.
5. αναζητήστε το παιχνίδι στην εφαρμογή μας και κάντε κλικ στο κουμπί “Play”.
6. έχετε εντυπωσιακή συνοδευμένη εμπειρία Posido Casino!

Τι προσφέρει το Posido Casino με την εφαρμογή μας;, translated to What does Posido Casino offer with its online app?

Το Posido Casino προσφέρει ένα εντυπωσιακό περιεχόμενο παιγνιδιών με την εφαρμογή μας, περιλαμβάνοντας πολυμεσικά παιχνídia, ρολικά παιχνídia και παιχνídια ζήτησης σε ένα περιβάλλον άμεσης χρήσης.
Είναι δυνατή η λήψη της εφαρμογής μας για όλες τις πλατφόρμες, είτε για κινητές τηλέφωνα ή για υπολογιστικά, ενεργοποιώντας την ελεγχόμενη περίληψη των παιχνιδιών και των διαθέσιμων επιλογών.
Το Posido Casino προσφέρει επίσης ένα αξιόπιστο περιβάλλον ασφαλείας με χρήση κρυπτογραφημένης σύνδεσης και προστασίας των παραμυθιών σας, ενσωματωμένης στην εφαρμογή μας.
Με την εφαρμογή posido μας, οι παίχτες μπορούν να λαβούν πρόσβαση σε προγράμματα βonoυ και να αναζητούν προσφορές και εκπτώσεις προσωπικά τους.
Το Posido Casino προσφέρει επίσης υποστήριξη 24/7 μέσω ζητήσεων συνολικής υποστήριξης στην εφαρμογή μας, ενabling στους παίχτες να λαμβάνουν βοήθεια για οποιαδήποτε ζήτηση ή πρόβλημα που μπορεί να σχεδιάσει.
Συνολικά, το Posido Casino με την εφαρμογή μας προσφέρει μια αξιόπιστη και αναπαυστική εμπειρία παιγνιδιού, προσφέροντας πολλές επιλογές παιχνιδιών, ασφαλείας και υποστήριξης 24/7.

Παίξτε στο Posido Casino με την εφαρμογή μας στο διαδίκτυο - Γρήγορα & ασφαλές καζίνο εμπειρία!

Γρήγορες αναζήτησης και χρήση στο Posido Casino με την εφαρμογή μας;, translated to Fast search and use in Posido Casino with our online app?

Ενημερώνουμε τον κόσμο των καζινών στην Ελλάδα για την ταχύτητα αναζήτησης και χρήσης που προσφέρει το Posido Casino μέσω της εφαρμογής μας.
Μπορείτε να βρείτε εύκολα ό,τι ψάχνετε στο Posido Casino, είτε αν ζητάτε σπίλια, παιχνίδια ή άλλες λεπτομέρειες.
Η χρήση της εφαρμογής μας σίγουρα σας επιτρέπει να αναζητήσετε και να χρησιμοποιήσετε τον ιστότοπο μας πιο γρήγορα και πιο εфективά.
Το Posido Casino είναι τώρα πιο προσεκτικό και πιο εύκολο να χρησιμοποιηθεί, είτε στην υπολογιστική σας ή στην κινητή σας συσκευή.
Δοκιμάστε την ταχύτητα και την απλότητα χρήσης της εφαρμογής μας σήμερα και δείτε τι κάνει την διαφορά στην εμπειρία σας στο Posido Casino.
Εγώ σας υποστηρίζω να δοκιμάσετε την εφαρμογή μας, θα δείτε ότι αυτή είναι η καλύτερη επιλογή για να βρείτε το λαβύρinth του Posido Casino.

Παίξτε στο Posido Casino με την εφαρμογή μας στο διαδίκτυο - Γρήγορα & ασφαλές καζίνο εμπειρία!

Πώς να διατηρήσετε τη ασφάλεια σας στο Posido Casino με την εφαρμογή μας;, translated to How to maintain your safety in Posido Casino with our online app?

Για να διατηρήσετε τη ασφάλεια σας στο Posido Casino, μπορείτε να χρησιμοποιήσετε την εφαρμογή μας με τον ακόλουθο τρόπο:
1. Εγκαταστήστε την τελευταία έκδοση της εφαρμογής Posido Casino.
2. Δημιουργήστε ένα ισχυρό κωδικό πρόσβασης και ενημερώστε το συχνά.
3. Ελέγξτε την πρόσβαση σας στην εφαρμογή με βάση το IP σας ή το VPN.
4. Μην αποκαλύπτετε τις πληροφορίες σας χρήστη σε άλλους.
5. Ακολουθήστε τις οδηγίες του Posido Casino για να αποφεύγετε τις πιθανές προβλήματα ασφάλειας.
6. Επικοινωνήστε με την υποστήριξη Posido Casino για οποιαδήποτε βοήθεια σχετικά με την ασφάλεια σας.

Προγνωστικές παίξεις στο Posido Casino με την εφαρμογή μας;, translated to Predictive gaming in Posido Casino with our online app?

Παίξετε στο Posido Casino με την βοήθεια της εφαρμογής μας και αναπτύξτε την ικανότητά σας να πρόγνωσετε το επόμενο κίνημα!
Τώρα, μπορείτε να δοκιμάσετε την εμπειρία της πρόγνωστικής παιχνιδιάσεως με πολλές παιχνídia που διαθέτουμε, όπως Roulette, Blackjack και Slots.
Οι πρόγνωσεις βασίζονται στατιστικά δεδομένα και λογισμικά προηγουμένων κίνησεων, επιτρέποντάς σας να αναπτύξετε την στρατηγική σας για να επιτύχετε.
Η εφαρμογή μας είναι εύκολη στη χρήση και διαθέτει ένα φιλικό περιβάλλον χρήστη, επιτρέποντάς σας να είστε άμεσα στο εκέι της ενέργειας.
Προσφέρουμε επίσης προγράμματα βonoυ και προσφορές για νέους χρήστες, επιτρέποντάς σας να αναπτύξετε την εμπειρία σας στο Posido Casino.
Έχετε ήδη δοκιμάσει την πρόγνωστική παίξη στο Posido Casino; Δοκιμάστε την σήμερα και αναπτύξτε την ικανότητά σας να πρόγνωσετε!

Πάντες οι φίλοι μου γνωρίζουν ότι αγαπώ να παίζω στα καζίνο. Το Posido Casino είναι πάνω από όλα! Το σύστημα της εφαρμογής είναι γρήγορο και ασφαλές, επιτρέποντάς μου να παίζω τα προτιμώμενα μου παιχνídia ρανδεβού με την εase. Το διακομιστήριο είναι πολύ χρήσιμο και προσεγγίζει με εντhusiasm και επιβλεπόμενη υποστήριξη. Το προσφέρουν επίσης προσφορές και περισσότερα που με περιστέλλουν! Παίξτε στο Posido Casino με την εφαρμογή μας στο διαδίκτυο – θα σας αρέσει το πολύ!
*Μάρια, 35 χρονών*

Ένας από τους καλύτερους τρόπους για να δουλεύετε από το σπίτι είναι να παίζετε στα καζίνα. Το Posido Casino είναι το καλύτερο! Η εφαρμογή τους είναι γρήγορη και εύκολη στη χρήση, ενώ το παρόν υποστήριξης είναι πάντα διαθέσιμη για να βοηθήσει με οποιοδήποτε ζήτημα. Τα παιχνídia είναι εκπληκτικά και είναι πολύ εύκολο να βρείτε τα προτιμώμενα σας. Το Posido Casino είναι το τοπικό προτιμημένο μου καζίνο!
*Γιώργος, 43 χρονών*

Μιλώ για εμένα, το Posido Casino είναι το καλύτερο! Η εφαρμογή τους είναι γρήγορη και ασφαλής, ενώ το διακομιστήριο είναι πολύ ευχάριστο και προσεγγίζει με εντhusiasm. Έχω νικήσει κάποτε και οι προσφορές είναι πολύ ωραίες. Αν θέλετε να παίξετε σε καμία εφαρμογή καζίνο, το Posido Casino είναι η επιλογή σας!
*Αννα, 28 χρονών*

Παίξτε στο Posido Casino με την εφαρμογή μας στο διαδίκτυο: Συχνές Ερωτήσεις

Μπορώ να παίξω στο Posido Casino με την εφαρμογή σας; Ναι, μπορείτε να παίξετε όλα τα παιχνídia μας με την εφαρμογή μας στο διαδίκτυο, χωρίς να χρειάζεται καμία εγκατάσταση.

Είναι ασφαλή η χρήση της εφαρμογής σας; βεβαίως! Χρησιμοποιούμε την τελευταία τεχνολογία SSL για να προστατεύουμε τις πληροφορίες σας και να σας παρέχουμε μια ασφαλής καζίνο εμπειρία.

Πώς μπορώ να αρχίσω να παίζω; Μπορείτε να δημιουργήσετε ένα λογαριασμό μας σε λίγα εύκολα βήματα και να συνδεθείτε. Στη συνέχεια, μπορείτε να επιλέξετε το παιχνίδι που θέλετε να παίξετε και να αρχίσετε να παίζετε αμέσως.

Ποια είναι οι πλεονεκτήσεις της χρήσης της εφαρμογής σας; Με την χρήση της εφαρμογής μας, μπορείτε να έχετε μια γρήγορη και ασφαλής καζίνο εμπειρία, με πρόσβαση ευκολή σε όλα τα παιχνίδα μας, καθώς και στις προσφορές και τις προκλήσεις μας.

Design and Develop by Ovatheme